package com.meirengu.webview.service;

import com.meirengu.service.BaseService;
import com.meirengu.webview.model.User;
import com.meirengu.webview.model.UserInfo;

import javax.servlet.http.HttpServletRequest;

/**
 * UserInfo服务接口
 *
 * @author maoruxin
 * @create Sun Dec 10 09:58:45 CST 2017
 */
public interface UserInfoService extends BaseService<UserInfo> {


    void testRedis();

    Integer isExist(String userId);

    int complement(HttpServletRequest request) throws Exception;

    /**
     * 通过userId获取用户详细信息
     *
     * @param userId
     * @return
     */
    UserInfo getByUserId(String userId);

    /**
     * 延时消息：10分钟后关注公众号
     *
     * @param userId
     */
    boolean sendMQlinkwechat(String userId);

    /**
     * 延时消息：24小时  营销短信：超市
     *
     * @param userId
     */
    boolean sendMQlinkMarketing(String userId);

    /**
     * 异步调用接口渠道
     *
     * @param userId
     */
    boolean sendAsyn(String userId);

    /**
     * 异步发送渠道
     *
     * @param user
     * @param userInfo
     * @throws Exception
     */
    void sendChannel(User user, UserInfo userInfo) throws Exception;

    /**
     * 发送信贷员系统
     *
     * @param userInfo
     */
    boolean sendProduct(User user, UserInfo userInfo);

    /**
     * 发送平安普惠接口
     * 过滤条件
     * 1 年龄(21-55)
     * 2 房车寿 三其一
     *
     * @param userInfo
     * @param user
     * @throws Exception
     */
    boolean sendPuHui(UserInfo userInfo, User user) throws Exception;

    /**
     * 发送春雨赠险未完善数据
     * 过滤条件
     * 1 1年龄(25-50)
     *
     * @param user
     * @throws Exception
     */
    boolean sendCYZXWWS(User user) throws Exception;

    /**
     * 发送平安赠险接口
     * 过滤条件
     * 1 1年龄(25-50)
     *
     * @param userInfo
     * @param user
     * @throws Exception
     */
    boolean sendPingAnZX(UserInfo userInfo, User user) throws Exception;

    /**
     * 发送你我贷接口
     * 过滤条件
     * 1地址
     *
     * @param userInfo
     * @param user
     * @throws Exception
     */
    boolean sendNiwodai(UserInfo userInfo, User user) throws Exception;

    /**
     * 发送平安新一贷接口
     * 过滤条件
     * 1.年龄
     * 2.地址
     * 3.4其一
     *
     * @param userInfo
     * @param user
     */
    boolean sendPcac(UserInfo userInfo, User user) throws Exception;

    /**
     * 发送厚本金融接口
     * 过滤条件
     * 1 申请金额：2w以上
     * 2 满足城市字典
     * 3 年龄：21-60（包含21、60）
     * 4 收入：2000元以上
     * 5 有信用卡或者银行贷款
     * 6 公积金、保单（二者有其一）
     *
     * @param userInfo
     * @param user
     * @throws Exception
     */
    boolean sendHouBank(UserInfo userInfo, User user) throws Exception;


    /**
     * 发送西伊宜信接口
     * 过滤条件
     *
     * @param userInfo
     * @param user
     * @throws Exception
     */
    boolean sendXYCreditEase(UserInfo userInfo, User user) throws Exception;

    /**
     * 发送飞单宝接口
     *
     * @param userInfo
     * @param user
     * @throws Exception
     */
    boolean sendFeidan8(UserInfo userInfo, User user) throws Exception;

    /**
     * 发送中腾信官方接口
     * 过滤条件
     * 1.城市
     * 2.年龄：23-55
     * 3.公积金
     * 4.职业：工薪族或公务员（私企业主转为工薪族）
     * 5.月收入2000以上
     *
     * @param userInfo
     * @param user
     * @throws Exception
     */
    boolean sendChinatopcredit(UserInfo userInfo, User user) throws Exception;


    /**
     * 推送接口后修改限制数量
     *
     * @param code
     * @param interfaceCode
     * @param user
     */
    void updateLimitNum(Integer code, String interfaceCode, User user);

    /**
     * 推送成功后修改地区限制表的数量
     *
     * @param code
     * @param user
     */
    void updateAreaLimit(Integer code, String channelCode, UserInfo userInfo, User user);


    /**
     * 发送积压短信
     */
    void sendStockSMS() throws Exception;
}
